import { defineStore } from 'pinia'
import { ref } from 'vue'

// 写完自己想一些： pinia和vuex有什么区别？
// pinia的持久化借助于插件， 配置以下即可 --- pinia-plugin-persistedstate
// vuex的持久化也可以用插件 vuex-persistedstate， 在配置里面多一个选项叫 plugin。不用再说vuex只有5个核心概念
export const userStore = defineStore(
  'user',
  () => {
    // 定义一个仓库的数据
    // 工作里面为了快速完成业务代码，ts类型就可以用any快速的代替
    const user = ref<any>(null)

    // 在组合式api里面  函数就是actions
    const setUser = (e: any) => {
      user.value = e

      // 数据的持久化：localStorage sessionStorage  cookie
      // localStorage.setItem('user', e)  -- 后面都用插件自动持久化保存，不需要手动设置了
    }

    const delUser = () => {
      user.value = null
    }

    return { user, setUser, delUser }
  },
  {
    persist: true
  }
)